package com.app.dao.basesetting;

import com.app.dao.BaseDao;
import com.app.model.Goods_Info;
import com.app.model.Goods_InfoToPackage;
import com.app.model.Goods_Package;
import com.app.model.Goods_Type;

import java.util.List;

/**
 * Created with IntelliJ IDEA.
 * User: cnprinces
 * Date: 13-1-24
 * Time: 下午4:31
 * To change this template use File | Settings | File Templates.
 */
public interface GoodsDao extends BaseDao<Goods_Type, Integer> {
    /**
     * 获得该父节点下的所有商品
     *
     * @param goodsType
     * @return
     */
    List<Goods_Info> getGoodsTypeByParentId(Goods_Type goodsType);

    /**
     * 获得该子节点下的所有商品
     *
     * @param goodsType
     * @return
     */
    List<Goods_Info> getGoodsTypeById(Goods_Type goodsType);

    Goods_Info getGoodsInfo(Integer id);

    void deleteGoodsInfo(Goods_Info goodsInfo);

    /**
     * 获取所有的套系
     * @return
     * @param b   获取所有的套系还是  所有没失效的
     */
    List<Goods_Package> getGoodsPackageList(boolean b);

    void deleteGoodsPackage(Goods_Package goodsPackage);

    Goods_Package getGoodsPackageById(Goods_Package goodsPackage);

    /**
     * 加载所有的商品
     * @return
     */
    List<Goods_Info> loadGoodsInfoList();

    /**
     *    直接删除该对应关系
     * @param id
     */
    void deleteGoodsInfoToPackageById(Integer id);


    /**
     * 根据套系的id 删除他旗下的所有商品
     * @param id
     */
    void deleteGoodsInfoToPackageByPackageId(Integer id);

    /**
     *   根据套系的id得到他旗下的所有商品
     * @param id
     * @return
     */
    List<Goods_InfoToPackage> getGoodsInfoToPackageByPackageId(Integer id);
}
